package org.dromara.system.domain.policy;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 承保单主对象 policy
 *
 * @author Lion Li
 * @date 2025-11-16
 */
@Data
@TableName("aszlb_policy")
public class Policy implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 自增主键
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 保单号（批量查询字段）
     */
    private String policyId;

    /**
     * 投保单号（批量查询字段）
     */
    private String applicationId;

    /**
     * 保单生效时间
     */
    private String effectiveTime;

    /**
     * 保单终止时间
     */
    private String expireTime;

    /**
     * 产品编码
     */
    private String productCode;

    /**
     * 险种编码
     */
    private String insuranceCode;

    /**
     * 险种编码名称
     */
    private String insuranceCodeName;

    /**
     * 险种名称
     */
    private String insuranceName;

    /**
     * 用户PIN
     */
    private String userPin;

    /**
     * 店铺ID
     */
    private String shopId;

    /**
     * 店铺名称
     */
    private String shopName;

    /**
     * 商品编码
     */
    private String commodityCode;

    /**
     * 商品名称
     */
    private String commodityName;

    /**
     * 主商品品牌
     */
    private String brand;

    /**
     * 主商品型号
     */
    private String model;

    /**
     * 收货省ID
     */
    private String receiveProvinceId;

    /**
     * 主商品订单号（批量查询）
     */
    private String mainOrderId;

    /**
     * 商家ID
     */
    private String merchantId;

    /**
     * 一级类目ID
     */
    private String firstCategoryId;

    /**
     * 二级类目ID
     */
    private String secondCategoryId;

    /**
     * 主商品三级类目
     */
    private String thirdCategoryName;

    /**
     * 主商品二级类目
     */
    private String twoCategoryName;

    /**
     * 主商品一级类目
     */
    private String oneCategoryName;

    /**
     * 保单状态
     */
    private String policyStatus;

    /**
     * 是否实收
     */
    private String isReceived;

    /**
     * 是否共保
     */
    private String isCoInsurance;

    /**
     * 业务来源（多条件查询）
     */
    private String businessSource;

    /**
     * 保单创建日期（分区键）
     */
    private String createDate;

    /**
     * 应收保费(保费实收)
     */
    private Long premiumReceivable;

    /**
     * 保额
     */
    private Long insuredAmount;

    /**
     * 保障期间值
     */
    private String coveragePeriod;

    /**
     * 标的物数量
     */
    private String subjectQuantity;

    /**
     * 主商品京东价
     */
    private Long mainCommodityPrice;

    /**
     * 标的物类目ID
     */
    private String subjectCategoryId;

    /**
     * 佣金率
     */
    private String commissionRate;

    /**
     * 订单总金额
     */
    @TableField(exist = false)
    private Long orderTotalAmount;

    /**
     * 请求标识
     */
    @TableField(exist = false)
    private String requestId;
}
